A -> B -> C
A : 클라(모바일)
B : 고부하 API 서버 (H/W 적음)
C : 로그 서버 (H/W 많음)
A가 B에 API를 요청하면 B가 C에 로그를 쏘고 응답을 기다린 후 C로 응답이 나가는데 이게 좀 걸린다. 고부하 상황이다. (물론 B가 응답부터하고 C에 로그를 쏠 수도 있긴 한데 http request life cycle은 그대로 상존한다.)
다행히 B-C 구간은 보안 데이터가 없으며 A가 B에게 따로 받을 데이터는 없다.
솔루션 : B는 A로 헤더에 redirect를 넣어 응답하도록 처리한다.
그러면 A가 B를 호출하면 바로 응답을 받으면서 A가 C를 리다이렉트로 호출한다. 즉, C에 대한 응답 대기를 A (클라)가 기다린다. 부하를 떠넘긴 것인데, B 입장에서는 꽤나 수고로운 짐을 분산한 것이다. 대지여 하늘이여 부하를 나눠가져가다오~
단말 입장에서는 ajax콜이나 state를 고려한 귀찮은 프로그래밍을 떠올릴 수도 있지만.. 실제로는 img tag에 의해 fire and forgot 방식이 된다. js를 추가하긴 어려운 상황이다.
단순하고, 빠르다.